/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package controlador;

import java.util.*;
import modelo.ITienda;
import modelo.Tienda;
import modelo.ITiendaModel;
import vista.ITiendaView;
/**
 *
 * @author LEONIC
 */
public class TiendaController implements ITiendaController{

    private ITiendaModel model;
    private List<ITiendaView> views=new ArrayList<ITiendaView>();

    public void setup(ITiendaModel model, List<ITiendaView> views) {
        setModel(model);
        addViews(views);
        model.setController(this);

    }

    public void start() {
        for(ITiendaView view:views)
            view.display();
    }

    private void addViews(List<ITiendaView> views){
        for(ITiendaView view:views)
            addView(view);
    }
    public void addView(ITiendaView view) {
        view.setModel(model);
        view.setController(this);
        views.add(view);
    }

    public void removeView(ITiendaView view) {
        views.remove(view);
    }

    public ITiendaModel getModel() {
        return model;
    }

    public void setModel(ITiendaModel model) {
        this.model=model;
    }

    public void nuevoTiendaGesture(int ID, String direccion, int cp, int telefono, int capacidad) {
        ITienda tienda=new Tienda(ID,direccion,cp,telefono, capacidad);
        getModel().nuevoTienda(tienda);
    }

    public void actualizaTiendaGesture(int ID, String direccion, int cp, int telefono, int capacidad) {
        ITienda tienda=new Tienda(ID,direccion,cp,telefono, capacidad);
        getModel().actualizarTienda(tienda);
    }

    public void asignarTareasTiendaGesture(int ID, String direccion, int cp, int telefono, int capacidad) {
        ITienda tienda=new Tienda(ID,direccion,cp,telefono, capacidad);
        getModel().AsignarTareasEnTienda(tienda);
    }

    public void borraTiendaGesture(int ID) {
        ITienda tienda=new Tienda(ID);
        getModel().eliminarTienda(tienda);
    }



    public void fireDataModelChanged() {
        for (ITiendaView view : views) {
            view.dataModelChanged();
        }
    }

    public List<ITiendaView> getViews(){
        return this.views;
    }
}
